
from rest_framework.generics import ListAPIView,CreateAPIView
from users.models import User
from meiduo_admin.serializers.user_serializers import *

from meiduo_admin.custom_paginations import MyPage

# 定义一个视图响应序列化分页返回用户数据
class UserAPIView(ListAPIView, CreateAPIView):
    queryset = User.objects.all()
    serializer_class = UserModelSerializer

    # 添加分页器
    pagination_class = MyPage

    # 重写get_queryset()实现简单的过滤
    def get_queryset(self):
        # 根据前端传递的查询字符串参数keyword进行名称的过滤
        # 1、获取前端传递的keyword：  users/?keyword=weiwei&page=1&pagesize=10
        keyword = self.request.query_params.get('keyword')
        # 2、根据keyword进行过滤：如果前端传递keyword，那么就过滤， 如果没有传递keyword就返回默认
        if keyword:
            # keyword存在，则过滤
            # return self.queryset.filter(username__contains=keyword, is_staff=True).all()
            return self.queryset.filter(username__contains=keyword, is_staff=True).order_by('id')
        # keyword不存在返回默认
        return self.queryset.filter(is_staff=True).order_by('id')






